package com.brainlounge.zooterrain.zkclient; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.StringUtils; import org.apache.zookeeper.data.Stat; /** */ public class DataMessage extends ClientMessage { protected final Stat stat; protected String znode; protected byte[] rawData; public DataMessage(String znode, byte[] data, Stat stat) { this.znode = znode; rawData = data; this.stat = stat; } public Stat getStat() { return stat; } public String getZnode() { return znode; } public byte[] getRawData() { return rawData; } public String getDataBase64Encoded() { return StringUtils.newStringUtf8(Base64.encodeBase64(rawData, false)); } @Override public String toJson() { StringBuilder builder = new StringBuilder(). append("{"). append("\"type\":").append(quoted("B")).append(","). append("\"znode\":").append(quoted(znode)).append(","). append("\"data\":").append(quoted(getDataBase64Encoded())); if (stat != null) { builder.append(","). append("\"size\":").append(stat.getDataLength()).append(","). append("\"version\":").append(stat.getVersion()); } builder.append("}"); return builder.toString(); } }